home *** CD-ROM | disk | FTP | other *** search
- /*
- * Project: SimpleApp
- *
- * Filename: SimpleAppMenus.c
- *
- * Author: Marco Piovanelli
- *
- * Revision History:
- *
- * 1996.05.24 MP created this file
- *
- */
-
- #include "SimpleApp.h"
-
- #ifndef __DEVICES__
- #include <Devices.h>
- #endif
-
- #ifndef __STANDARDFILE__
- #include <StandardFile.h>
- #endif
-
- OSErr InitializeMenus ( )
- {
- MenuRef menu ;
-
- SetMenuBar ( GetNewMBar ( kMenuBarID ) ) ;
-
- menu = GetMenuHandle ( kMenuApple ) ;
- if ( menu == nil )
- return resNotFound ;
-
- AppendResMenu ( menu, 'DRVR' ) ;
-
- DrawMenuBar ( ) ;
-
- return noErr ;
- }
-
- OSErr PrepareMenus ( )
- {
- return noErr ;
- }
-
- OSErr DoDeskAccessory ( SInt16 menuItem )
- {
- Str255 deskAccessoryName ;
-
- GetMenuItemText ( GetMenuHandle ( kMenuApple ), menuItem, deskAccessoryName ) ;
- OpenDeskAcc ( deskAccessoryName ) ;
-
- return noErr ;
- }
-
- OSErr DoAppleChoice ( SInt16 menuItem )
- {
- OSErr err = noErr ;
-
- switch ( menuItem )
- {
- case kItemAbout :
- break ;
-
- default:
- err = DoDeskAccessory ( menuItem ) ;
- break ;
- }
-
- return err ;
- }
-
- OSErr DoFileChoice ( SInt16 menuItem )
- {
- OSErr err = noErr ;
-
- switch ( menuItem )
- {
- case kItemNew:
- if ( ( err = CreateWindow ( nil ) ) != noErr )
- {
- return err ;
- }
- break ;
-
- case kItemOpen:
- {
- StandardFileReply reply ;
-
- StandardGetFile ( nil, -1, nil, & reply ) ;
- if ( reply . sfGood )
- {
- if ( ( err = CreateWindow ( & reply . sfFile ) ) != noErr )
- {
- return err ;
- }
- }
- }
- break ;
-
- case kItemClose:
- {
- WindowRef macWindow ;
- if ( ( macWindow = FrontWindow ( ) ) != nil )
- {
- DestroyWindow ( macWindow ) ;
- }
- }
- break;
-
- case kItemQuit:
- gExiting = true ;
- break ;
-
- default:
- break ;
- }
-
- return err ;
- }
-
- OSErr DoMenuChoice ( SInt32 menuChoice )
- {
- SInt16 menuID = ( ( menuChoice >> 16 ) & 0x0000FFFF ) ;
- SInt16 menuItem = ( menuChoice & 0x0000FFFF ) ;
- OSErr err = noErr ;
-
- switch ( menuID )
- {
- case kMenuApple :
- err = DoAppleChoice ( menuItem ) ;
- break ;
-
- case kMenuFile :
- err = DoFileChoice ( menuItem ) ;
- break ;
-
- default :
- break ;
- }
-
- HiliteMenu ( 0 ) ;
-
- return err ;
- }
-